#include<stdio.h>


struct Test
{
    char b;
    int a;
    double c;//8
};
struct Test1
{
    struct Test t;
    int a;
};//按展开的最大数据类型对齐


int main()
{
    struct Test t;
    printf("%ld\n",sizeof(t));
    printf("%p %p %p %p\n",&t,&t.b,&t.a,&t.c);
    //8
    //0x7ffe761e00f0 0x7ffe761e00f0 0x7ffe761e00f4
    //结构体的内存对齐；规则以最大的数据类型进行对其
    //如果两个加上还不能达到最大的对齐空间
    //两个小的数据类型先对齐并入大的数据类型中
    //16
    //0x7fff744dc2c0 0x7fff744dc2c0 0x7fff744dc2c4 0x7fff744dc2c8
    //不同的定义顺序内存不相同
    //由小到大放数据类型最省空间
    //数组不算数据类型，是同一数据类型的集合
}